/**
 * 2010(c) Copyright Oceansoft Information System Co.,LTD. All rights reserved.
 * <p>
 * Compile: JDK 1.6+
 * <p>
 * 版权所有(C)：江苏欧索软件有限公司
 * <p>
 * 公司名称：江苏欧索软件有限公司
 * <p>
 * 公司地址：中国苏州科技城青山路1号
 * <p>
 * 网址: http://www.oceansoft.com.cn
 * <p>
 * 作者: 090922(陈伟)
 * <p>
 * 文件名: com.oceansoft.mobile.econsole.modules.file.controller.SysFileController.java 
 * <p>
 * 类产生时间: 14-5-29 下午7:07
 * <p>
 * 负责人: 090922(陈伟)
 * <p>
 * Email:javacspring@gmail.com
 * <p>
 * 所在组 : 掌上公安应用平台
 * <p>
 * 所在部门: 开发部--手持技术部
 * <p>
 * <p>
 */
package com.oceansoft.mobile.econsole.modules.file.controller;

import com.oceansoft.mobile.econsole.modules.api.entity.SysFile;
import com.oceansoft.mobile.econsole.modules.base.controller.BaseController;
import com.oceansoft.mobile.econsole.modules.base.entity.Pager;
import com.oceansoft.mobile.econsole.modules.base.entity.Query;
import com.oceansoft.mobile.econsole.modules.base.entity.Result;
import com.oceansoft.mobile.econsole.modules.file.service.ISysFileService;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;

import javax.annotation.Resource;

import static org.springframework.web.bind.annotation.RequestMethod.GET;
import static org.springframework.web.bind.annotation.RequestMethod.POST;

/**
 * 系统文件管理控制器
 *
 * @author: chenw
 * @time: 14-5-29 下午7:07
 */
@Controller
@RequestMapping("sys/file")
public class SysFileController extends BaseController {

    @Resource
    private ISysFileService sysFileService;

    /**
     * 进入系统文件管理模块
     *
     * @return String
     */
    @RequestMapping(value = "index", method = GET)
    public String gotoFileIndex(Query query, Model model) {
        query.setOrderField("UPLOAD_TIME");
        query.setOrderDirection("DESC");
        model.addAttribute("query", query);
        model.addAttribute("pager", sysFileService.findByCondition(query));
        model.addAttribute("downloadPrefix", configInfo.getFileDownloadRootUrl());
        log("进入文件管理首页");
        return "file/sys-file-list";
    }

    @RequestMapping("view/{file_id}")
    public String viewFile(@PathVariable("file_id") int fileId, Model model) {
        SysFile file = sysFileService.findById(fileId);
        file.setPath(configInfo.getFileDownloadUrl(file.getPath()));
        model.addAttribute("file", file);
        return "file/sys-file-view";
    }

    /**
     * 列表分页显示
     *
     * @param query 分页查询条件
     * @param model 数据Model
     * @return 页面地址
     */
    @RequestMapping(value = "list", method = POST)
    public String loadPageByCondition(Query query, Model model) {
        Pager pager = sysFileService.findByCondition(query);
        model.addAttribute("query", query);
        model.addAttribute("pager", pager);
        log(String.format("查看客户端文件列表第%d页", query.getPageNum()));
        return "file/sys-file-list";
    }

    /**
     * 查看文件详细信息
     *
     * @param id 文件ID
     * @return Result
     */
    @ResponseBody
    @RequestMapping("del/{file_id}")
    public Result deleteById(@PathVariable("file_id") int id) {
        log(String.format("查看文件%d详细信息", id));
        return sysFileService.delete(id);
    }
}
